package com.yztctech.a24_01_normalbroadcast_staticregist;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

/**
 * Created by bodhixu on 2016/9/23.
 * 自定义静态广播接收器:注意BroadcastReceiver是四大组件之一,所以必须注册才能使用,静态注册和动态注册
 *
 * 备注:BroadcastReceiver 自身并不实现图形用户界面，但是当它收到某个通知后， BroadcastReceiver 可以通过启动 Service 、启动 Activity 或是 NotificationMananger 提醒用户。
 * 1. 当系统或应用发出广播时，将会扫描系统中的所有广播接收者，通过action匹配将广播发送给相应的接收者，接收者收到广播后将会产生一个广播接收者的实例，执行其中的onReceiver()这个方法；特别需要注意的是这个实例的生命周期只有10秒，如果10秒内没执行结束onReceiver()，系统将会报错。
 * 2. 在onReceiver()执行完毕之后，该实例将会被销毁，所以不要在onReceiver()中执行耗时操作，也不要在里面创建子线程处理业务（因为可能子线程没处理完，接收者就被回收了，那么子线程也会跟着被回收掉）；正确的处理方法就是通过in调用activity或者service处理业务。
 * 3. 标准广播:同时收到广播,效率高,无法被截断,消耗性能慎用
 * 4. 静态注册的广播接受者,app一旦安装在系统,则可以接收指定的广播,不管这个app是否有启动.这样我们可以做不死的Service,可以用socket做长链接使用呢
 * 5. @reference pdf
 */
public class MyReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent.getAction().equals(MyConstans.ACTION_TEST)) {
            String result = intent.getStringExtra(MyConstans.KEY_TEST);
            Toast.makeText(context, result, Toast.LENGTH_SHORT).show();
        }

    }

}
